package com.study.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.study.pojo.User;
import jakarta.servlet.http.HttpServletRequest;

/**
 * service：业务逻辑层，即专门用来编写业务逻辑，例如登录注册。
 * 该层是应用程序的核心，负责处理业务逻辑。
 * 接受来自Controller层的请求，调用Mapper层执行数据库操作，并将处理结果返回给Controller层。
 * 还可以包含一些复杂的业务逻辑处理，如事务管理、数据校验等。
* @author fruity
* 用户服务
* @createDate 2025-03-18 14:54:23
*/
public interface UserService extends IService<User> {



    /**
     * 用户注册
     * @param userAccount 用户账户
     * @param userPassword 用户密码
     * @param checkNum 校验码
     * @return 新用户id
     */
    long userRegister(String userAccount ,String userPassword ,String checkNum,String interiorNum);

    /**
     * 用户登录
     *
     * @param userAccount  用户账户
     * @param userPassword 用户密码
     * @param request  服务器请求
     * @return 脱敏后的用户信息
     */
    User userLogin(String userAccount , String userPassword, HttpServletRequest request);

    /**
     * 用户脱敏
     * @param originalUser
     * @return
     */
    User getSafetyUser(User originalUser);


    /**
     * 用户请求注销
     * @param request
     * @return
     */
    int userLogout(HttpServletRequest request);

}
